//管理用户相关的状态值

//引入 md5
import md5 from "js-md5";
//引入 cookie
import {
	setCookie,
	getCookie,
	removeCookie
} from "@/utils/support";

//引入后台接口
import { Login } from "@/api/user";

const user = {
	state: {
		name: getCookie("name"), //登录后的用户的中文名   保存在 cookie
		roleid: getCookie("roleid"), //1超级管理员 2 普通用户   保存在 cookie
	},
	mutations: {
		//设置 中文名
		SET_NAME: (state, name) => {
			state.name = name;
		},
		//设置角色id
		SET_ROLEID: (state, roleid) => {
			state.roleid = roleid;
		},
	},
	actions: {
		//登录动作 context ={commit,state}
		LoginAC({ commit }, userInfo) {
			//写成promise的形式
			return new Promise((resolve) => {
				console.log("stor触发");
				console.log(commit);
				console.log(userInfo);
				const { username, password } = userInfo;
				console.log(username);
				//1.密码 加密, 密码不可以明文传到后台   密码：123456
				/*
                加密：  https 协议
                md5(password).substr(10,10)+0426 加盐
                */
				//console.log(md5(password + md5(password).substr(10, 10) + '0426'));
				userInfo.password = md5(password + md5(password).substr(10, 10) + 2014);
				console.log(userInfo.password);
				//调用后台接口
				Login(userInfo).then((res) => {
					console.log(res);
					if (res.status == 200) {
						//设置cookie
						setCookie("token", res["token"], 1);
						setCookie("name", res["name"], 1);
						setCookie("username", res["username"], 1);
						setCookie("roleid", res["roleid"], 1);
						//设置 store
						commit("SET_NAME", res["name"]);
						commit("SET_ROLEID", res["roleid"]);
						//a. 将成功的数据保存  ，保存到 cookie  和 vuex
						//b.成功的提示  和 页面跳转
						resolve(res);
					}
				});
			});
		},
		//退出操作  ,这段代码是新加的
        LogoutAC({ commit }) {
            //设置 store
            commit("SET_NAME", "");
            commit("SET_ROLEID", "");
            removeCookie("token");
            removeCookie("name");
            removeCookie("username");
            removeCookie("roleid");
        }
	},
};
export default user;
